package com.zmn.oms.dubbo.dto.zmn.order.serviceprovider;

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.zmn.oms.dubbo.dto.common.work.WorkSharingEstimateDRO;
import com.zmn.oms.dubbo.dto.zmn.order.OrderCommentDRO;
import com.zmn.oms.dubbo.dto.zmn.order.*;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述：服务商
 *
 * @author yule
 * @date 2019/06/03 15:06
 */
@Data
@ToString
public class SpOrderDetailDRO implements Serializable {

    /**
     * 分表值
     */
    private Integer shardingNum;

	/**
	 * 完成码
	 */
	private String  completeCode;

    /**
     * 工单id
     */
    private Long workId;

    /**
     * 工单号
     */
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long orderId;

    /**
     * 工单号
     */
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long code;

    /**
     * 状态
     */
    private Integer status;

    /**
     * 状态名称
     */
    private String statusName;

    /**
     * 结果
     */
    private Integer resultStatus;

    /**
     * 结果状态名称
     */
    private String resultStatusName;

    /**
     * 工单类型名称
     */
    private String typeName;

    /**
     * 工单类型
     */
    private Integer type;

    /**
     * 返修单ID
     */
    private Long reworkId;

    /**
     * 退款单ID
     */
    private Long refundWorkId;

    /**
     * 来源类型
     */
    private String sourceType;

    /**
     * 重复的原单ID
     */
    private Long duplicateId;

    /**
     * 服务分类名称
     */
    private String servCategName;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    private Integer bizType;

    /**
     * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
     */
    private String bizTypeName;

    /**
     * 产品
     */
    private List<OrderProductDRO> productList;

    /**
     * 下单备注
     */
    private String remark;

    /**
     * 客户联系信息
     */
    private OrderContactDRO contactVO;

    /**
     * 用户Id
     */
    private Long userId;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * 预约时间
     */
    private Date dutyTime;

    /**
     * 下单时间
     */
    private Date receiveTime;

    /**
     * 评价
     */
    private OrderCommentDRO commentVO;

    /**
     * 工程师拍照list
     */
    private List<String> imageSrcList;

    /**
     * 工程师列表
     */
    private List<OrderMasterDRO> masterVOList;

    /**
     * 原单工程师
     */
    private OrderMasterDRO reworkOriginalMaster;

    /**
     * 服务项目
     */
    private List<OrderProductDRO> serviceItemList;

    /**
     * 应收总金额
     */
    private Integer totalAmount;

    /**
     * 优惠总金额
     */
    private Integer discountAmount;

    /**
     * 订单金额
     */
    private Integer originalAmount;

    /**
     * 下单平台预付款
     */
    private Integer prepayAmount;

    /**
     * 渠道预付款
     */
    private Integer channelPrepayAmount;

    /**
     * 定金
     */
    private Integer depositAmount;

    /**
     * 工程师收款金额
     */
    private Integer masterAmount;


    /**
     * 厂商配件列表
     */
    private List<OrderWorkFactoryPartDRO> factoryPartList;

    /**
     * 保修项
     */
    private OrderDetailWarrantyDRO warranty;

    /**
     * 工单log集合
     */
    private List<OrderLogDRO> logList;


    /**
     * 厂商单
     */
    private OrderFactoryDRO orderFactory;

    /**
     * 服务商提留
     */
    @Deprecated
    private OrderWorkCommissionDRO commission;

    /**
     * 服务商提留
     */
    private Integer serviceProviderAmount;

    /**
     * 服务商结算金额
     */
    private Integer spStatementAmount;

    /**
     * 工程师提留
     */
    private Integer masterRewardsAmount;

    /**
     * 来源
     */
    private String channelName;

    /**
     * 店铺信息
     */
    private OrderShopDRO orderShopVO;

    /**
     * 下单平台
     */
    private Integer plat;

    /**
     * 下单平台名称
     */
    private String platName;

    /**
     * 服务平台标志：1.言而有信 2.啄木鸟
     */
    private Integer platWork;

    /**
     * 服务平台名称
     */
    private String platWorkName;

    /**
     * 支付状态名称
     */
    private String payStatusName;

    /**
     * 是否预约超时
     */
    private boolean dutyTimeIsTimeout;

    /**
     * 厂商配件列表
     */
    private List<OrderWorkFactoryPartDRO> fcPartList;

    /**
     * 下次联系时间
     */
    private Date nextContactTime;

    /**
     * 是否挂起
     */
    private Integer suspendStatus;

    /**
     * 挂起原因
     */
    private String suspendContent;

    /**
     * 即将预约超时
     */
    private Integer preDutyTimeOut;

    /**
     * 即将上门超时
     */
    private Integer preVisitTimeOut;

    /**
     * 已预约超时
     */
    private Integer alreadyPreDutyTimeOut;

    /**
     * 已上门超时
     */
    private Integer alreadyPreVisitTimeOut;

    /**
     * 分润预估
     */
    private WorkSharingEstimateDRO sharingEstimate;

}
